const api = require('../../utils/api'); // 确保路径正确，不要加.js后缀
Page({
    data: {
        isAuthorized: false,
        // userInfo: {},
        hasUserInfo: false, // 标识是否已获取到用户信息或手机号
        userInfo: null,
        agree: false,
        showLogin:0
  },
  goInsertInfo() {
    //跳转协议
    wx.navigateTo({
      url: '/pages/useragreement/useragreement'
    })
  },
  goInsertInfo1() {
    //跳转协议
    wx.navigateTo({
      url: '/pages/userprivacy/userprivacy'
    })
  },
  checkboxChange() {
    this.setData({
      agree: !this.data.agree
    })
  },
  goLogin(){
    if (!this.data.agree) {
      wx.showModal({
        title: '提示',
        content: '请仔细阅读《用户协议》及《用户隐私协议》并确认勾选以继续',
        showCancel: true, // 不显示取消按钮
        confirmText: '好的',
        confirmColor: '#91CFDC',
        success(res) {
          // 用户点击了“确认”按钮
          if (res.confirm) {
          }
        }
      });
      return
    }else{
      if(this.data.showLogin == 1){
        //退出登录的-直接第一个接口进入不用授权
        wx.login({
          success(loginRes) {
            wx.setStorageSync('code', loginRes.code) 
            api.login(loginRes.code).then((res) => {
                if (res.code == 200) {
                    wx.setStorageSync('token', `Bearer ${res.data.token}`) 
                    wx.switchTab({
                      url: '/pages/index/index',
                    })
                }
            })
          }
      }) 
      }
    }
  },
    handleGetPhoneNumber(e) {
      let that = this
        if (e.detail.errMsg === 'getPhoneNumber:ok') {
          // 用户同意授权，处理加密数据
        //   const encryptedData = e.detail.encryptedData;
        //   const iv = e.detail.iv; 
          // if(!wx.getStorageSync('code')){
          //       wx.login({
          //         success(loginRes) {
          //           wx.setStorageSync('code', loginRes.code) 
          //           that.xcxFirstLoginFn(e.detail.code)
          //         }
          //       })
          // }else{
            
          // }
        
          that.xcxFirstLoginFn(e.detail.code)
        } else {
          wx.showModal({
            title: '提示',
            content: '您拒绝了授权手机号，则不能使用平台相关功能~',
            showCancel: true, // 不显示取消按钮
            confirmText: '了解了',
            confirmColor: '#91CFDC',
            success(res) {
              // 用户点击了“确认”按钮
              if (res.confirm) {
              }
            }
          });
          console.error('用户拒绝提供手机号');
        }
      },
      xcxFirstLoginFn(phoneCode) {
        api.xcxFirstLogin({
            loginCode: wx.getStorageSync('code'),
            phoneCode 
        }).then(res => {
            if (res.code == 200) {
                wx.setStorageSync('phone', `${res.data.phoneNumber}`)
                wx.setStorageSync('token', `Bearer ${res.data.token}`)
                wx.switchTab({
                  url: '/pages/index/index', 
                })
            }else{
              wx.showToast({
                title: res.msg,
                icon: 'error',
                duration: 2000
              })
            }
        })
        // wx.login({
        //     success(loginRes) {
        //         api.xcxFirstLogin({
        //             loginCode: wx.getStorageSync('code'),
        //             phoneCode 
        //         }).then(res => {
        //             if (res.code == 200) {
        //                 wx.setStorageSync('phone', `${res.data.phoneNumber}`)
        //                 wx.setStorageSync('token', `Bearer ${res.data.token}`)
        // wx.switchTab({
        //     url: '/pages/index/index',
        // });
        //             }
        //         })
        //         // 更新页面状态
        //     },
        //     fail(err) {
        //         console.error("登录失败", err);
        //     }
        // });
      
    },
    onLoad(options) {
      this.setData({
          showLogin: wx.getStorageSync('ExitLogin') || 0
        })
      if(this.data.showLogin == 0){
        //新用户
        wx.login({
          success(loginRes) {
            wx.setStorageSync('code', loginRes.code) 
            api.login(loginRes.code).then((res) => {
                if (res.code == 200) {
                    wx.setStorageSync('token', `Bearer ${res.data.token}`) 
                }
            })
          }
      })
      }
    },
    getUserProfile() {
        const that = this;
        wx.getUserProfile({
            desc: '用于完善用户资料', // 必填，必须是用户友好的描述
            success(res) {
                console.log("用户信息:", res.userInfo);
                // 保存用户信息到本地缓存
                wx.setStorageSync('userInfo', res.userInfo);
                // 调用登录接口获取code
                wx.login({
                    success(loginRes) {
                        api.login({ code: loginRes.code }).then((res) => {
                            console.log('接口返回', res)
                        })
                        // 更新页面状态
                        that.setData({
                            isAuthorized: true,
                            userInfo: res.userInfo
                        });
                    },
                    fail(err) {
                        console.error("登录失败", err);
                    }
                });
            },
            fail(err) {
                console.error("获取用户信息失败", err);
            }
        });
    }
});
// Page({
//   data: {
//     userInfo: null,
//     hasUserInfo: false,
//   },

//   onLoad() {
//     // 检查是否已经授权
//     wx.getSetting({
//       success: res => {
//         if (res.authSetting['scope.userInfo']) {
//           // 已经授权，可以直接调用 getUserProfile 获取用户信息
//           this.onGetUserInfo(res);
//         }
//       }
//     });
//   },

//   onGetUserInfo(e) {
//     if (e.detail.userInfo) {
//       this.setData({
//         userInfo: e.detail.userInfo,
//         hasUserInfo: true
//       });

//       // 调用 wx.login 获取登录凭证
//       wx.login({
//         success: res => {
//           if (res.code) {
//               console.log('拿到用户code',res)
//             // 将 code 和用户信息发送到服务器
//             // wx.request({
//             //   url: 'http://47.104.128.67:8080/supermarket/mobile/xcxLogin', // 替换为实际的服务器地址
//             //   method: 'POST',
//             //   data: {
//             //     code: res.code,
//             //     userInfo: this.data.userInfo
//             //   },
//             //   success: res => {
//             //     console.log('Login and user info success:', res.data);
//             //     // 处理服务器返回的数据，例如保存 session_key 等
//             //   },
//             //   fail: err => {
//             //     console.error('Login and user info failed:', err);
//             //   }
//             // });
//           } else {
//             console.error('Login failed:', res.errMsg);
//           }
//         }
//       });
//     } else {
//       console.log('User refused to provide information');
//     }
//   }
// });